package com.算法.软件设计与开发.试题编号_2_1_1_小学生数学辅助学习系统关键算法;

import java.util.Scanner;

public class 任务一_趣味试题1_关键算法 {

    /**
     *  通过键盘输入某年某月某日，计算并输出这一天是这一年的第几天。
     *  例如， 2001 年 3 月 5 日是这一年的第 64 天。
     *
     * * 注意：使用分支结构语句实现。
     * @param args
     */
    public static void main(String[] args) {
        int year = 0;
        int mouth = 0;
        int days = 0;
        int e = 0;

        Scanner sc = new Scanner(System.in);
        do {
            System.out.println("输入年:");
            year = sc.nextInt();
            System.out.println("输入月:");
            mouth = sc.nextInt();
            System.out.println("输入日:");
            days = sc.nextInt();
            if (mouth < 0 || mouth > 12 || days < 0 || days > 31) {
                System.out.println("input error!----月份输入错误！继续请输入0,结束请输入2 :");
                e = sc.nextInt();
                if(e==0){
                    e=1;
                }else if(e==2){
                    return ;
                }
            }
        } while (e == 1);

        String s = days(year,mouth,days);
        System.out.println(s);
    }

    public static String days(int year,int mouth,int days){
        //累计天数
        int d=0;
        int day = 0;
        for (int i = 1; i < mouth; i++) {
            switch (i) {
                case 1:
                case 3:
                case 5:
                case 7:
                case 8:
                case 10:
                case 12: {
                    d = 31;
                    break;
                }
                case 4:
                case 6:
                case 9:
                case 11: {
                    d = 30;
                    break;
                }
                case 2: {
                    /**
                     * 闰年:①：非整百年数除以4，无余为闰，有余为平；②整百年数除以400，无余为闰有余平
                     * 二月：平年28天、闰年29天
                     */
                    if ((year % 100 !=0 &&year % 4 == 0) || (year % 100 == 0 && year%400==0)) {
                        d = 29;
                    } else {
                        d = 28;
                    }
                }
                default:
                    break;
            }
            day += d;
        }
        return "这是"+year+"年的"+(day+days)+"天";
    }

}
